var runtime.vgetrandomAlloc
28 uses
runtime (current package)
vgetrandom_linux.go#L17: var vgetrandomAlloc struct {
vgetrandom_linux.go#L39: vgetrandomAlloc.stateSize = uintptr(params.SizeOfOpaqueState)
vgetrandom_linux.go#L40: vgetrandomAlloc.mmapProt = int32(params.MmapProt)
vgetrandom_linux.go#L41: vgetrandomAlloc.mmapFlags = int32(params.MmapFlags)
vgetrandom_linux.go#L43: lockInit(&vgetrandomAlloc.statesLock, lockRankLeafRank)
vgetrandom_linux.go#L47: lock(&vgetrandomAlloc.statesLock)
vgetrandom_linux.go#L48: if len(vgetrandomAlloc.states) == 0 {
vgetrandom_linux.go#L50: stateSizeCacheAligned := (vgetrandomAlloc.stateSize + cpu.CacheLineSize - 1) &^ (cpu.CacheLineSize - 1)
vgetrandom_linux.go#L53: p, err := mmap(nil, allocSize, vgetrandomAlloc.mmapProt, vgetrandomAlloc.mmapFlags, -1, 0)
vgetrandom_linux.go#L55: unlock(&vgetrandomAlloc.statesLock)
vgetrandom_linux.go#L59: if vgetrandomAlloc.states == nil {
vgetrandom_linux.go#L60: vgetrandomAlloc.states = make([]uintptr, 0, num)
vgetrandom_linux.go#L63: if (newBlock&(physPageSize-1))+vgetrandomAlloc.stateSize > physPageSize {
vgetrandom_linux.go#L66: vgetrandomAlloc.states = append(vgetrandomAlloc.states, newBlock)
vgetrandom_linux.go#L70: state := vgetrandomAlloc.states[len(vgetrandomAlloc.states)-1]
vgetrandom_linux.go#L71: vgetrandomAlloc.states = vgetrandomAlloc.states[:len(vgetrandomAlloc.states)-1]
vgetrandom_linux.go#L72: unlock(&vgetrandomAlloc.statesLock)
vgetrandom_linux.go#L84: lock(&vgetrandomAlloc.statesLock)
vgetrandom_linux.go#L85: vgetrandomAlloc.states = append(vgetrandomAlloc.states, mp.vgetrandomState)
vgetrandom_linux.go#L86: unlock(&vgetrandomAlloc.statesLock)
vgetrandom_linux.go#L93: if vgetrandomAlloc.stateSize == 0 {
vgetrandom_linux.go#L118: return vgetrandom1(unsafe.SliceData(p), uintptr(len(p)), flags, mp.vgetrandomState, vgetrandomAlloc.stateSize), true